// JavaScript Document
/**
* 文件上传
*/
(function ($)
{
    $.fn.ligerFile = function ()
    {
        return $.ligerui.run.call(this, "ligerFile", arguments);
    };
    $.fn.ligerGetSpinnerManager = function ()
    {
        return $.ligerui.run.call(this, "ligerGetFileManager", arguments);
    };

    $.ligerDefaults.File = {
    	width: null,
        accept: null, //默认接受的文件类型，如: '.jpg,.png'
        initValue: null,
        onChangeValue: false  //改变值事件
    };

    $.ligerMethos.File = {};

    $.ligerui.controls.File = function (element, options)
    {
        $.ligerui.controls.File.base.constructor.call(this, element, options);
    };
    $.ligerui.controls.File.ligerExtend($.ligerui.controls.Input, {
        __getType: function ()
        {
            return 'File';
        },
        __idPrev: function ()
        {
            return 'File';
        },
        _extendMethods: function ()
        {
            return $.ligerMethos.File;
        },
        _init: function ()
        {
            $.ligerui.controls.File.base._init.call(this);
        },
        _render: function ()
        {
            var g = this, p = this.options;
            if (g.element.tagName.toLowerCase() != "input" || !g.element.type || g.element.type.toLowerCase() != "file"){
            	return;
            }
            g.inputFile = $(g.element);
            if(p.accept){
            	g.inputFile.attr('accept', p.accept);
            }
            if(!g.inputFile.hasClass('l-file-file')){
            	g.inputFile.addClass('l-file-file');
            }
            g.inputFile.css("opacity", 0);
            
            g.wrapper = g.inputFile.wrap('<div class="l-file-wrapper"></div>').parent();
            g.width = p.width || g.wrapper.width();
            g.wrapper.width(g.width);
            
            g.inputTextWrapper = $('<div class="l-text l-file-input-wrapper"></div>');
            g.inputText = $('<input type="text" class="l-text-field" readonly="readonly"/>');
            g.inputTextWrapper.append(g.inputText);
            g.inputTextWrapper.append('<div class="l-text-l"></div><div class="l-text-r"></div>');
            
            g.btnWrapper = $('<div class="l-file-btn-wrapper"></div>');
            g.btn = $('<div class="l-button l-file-btn"><div class="l-button-l"></div><div class="l-button-r"></div><span>浏览...</span></div>');
            g.btnWrapper.append(g.btn);
            
            g.wrapper.prepend(g.btnWrapper);
            g.wrapper.prepend(g.inputTextWrapper);
            
            g._setWidth(g.width);
            
            if(p.initValue){
            	g.inputText.val(p.initValue);
            }
            
            g.inputFile.bind('change.ligerfile', function(){
            	g.inputText.val(this.value);
            	g.inputFile.focus().blur();
            	g.trigger('changeValue', [this.value]);
            });
            g.inputFile.hover(function () {
            	g.btn.addClass("l-button-over");
            }, function () {
            	g.btn.removeClass("l-button-over");
            });
        },
        _setWidth: function (value)
        {
            var g = this;
            var btnwidth = g.btnWrapper.width();
            g.width = value;
            g.inputTextWrapper.width(g.width - btnwidth - 3);
            g.inputText.width(g.width - btnwidth - 3);
            
            g.btnWrapper.css('left', (g.width - btnwidth)+'px');
        },
        getValue: function ()
        {
            return g.inputText.val();
        }
    });
})(jQuery);